Many applications that are accessed from a user computing device require a valid userID for access. For example, accessing bank account or other account information over the Internet via a web browser will require entry of a valid userID and password. Entry of a valid userID and password is typically accomplished by having a form embedded on a web page that will cause the browser to display userID and password input form fields. The user enters userID and password characters into the appropriate input form field and the web browser causes the computing device to transmit the information to a network server. Application programs residing entirely on the user's computing device—for example a licensed computer aided design (CAD) program—can also require entry of a valid userID and password. When the CAD program is initiated, a screen displays userID and password input fields and requires entry of a valid userID and password to continue.
Many programs that display forms include an “autofill” function that will store inputs to a form field. This is a common feature of web browsers. When a user encounters the same form field again and begins to enter characters into the field, the web browser will display some or all of the previous entries for this field, typically in a drop-down menu, and allow the user to select one of the displayed entries to populate the field.
The autofill functionality typically narrows down the list of displayed previous user entries to those that begin with the characters the user has entered so far into the field. As an example, a user may use several email accounts to receive information from different websites. When the web browser is displaying a web page received from a website that is requesting an email address, the user mouse-clicks in the email address form field and the web browser displays all email addresses that have been entered in any email address form field at any website with that browser. As the user begins entering an email address, the list of displayed previously entered email addresses is first narrowed to those email addresses that begin with the first character the user has entered, then is narrowed to email addresses that begin with the first two characters entered, and so on. If the user is entering an email address that has not been used before in an email address form field, then at some point there will not be a match to any previously entered email addresses. When this occurs, no matching previously entered email addresses will be displayed and the browser will typically store the new email address entry. At any time, the user may select one of the displayed previously entered email addresses to populate the field, or select the “enter” key to populate the field with the characters entered so far.
Most web browsers recognize “sensitive” form fields and will provide a greater level of security with regard to saving entered information. For example, most web browsers recognize the userID and password form fields as sensitive and will give the user the option of storing information entered into these fields on a per website basis.
Most web browsers allow the user to specify a browser preference to not save any entered forms information. Also, a website author can specify on the web page whether to allow the saving of entered information and displaying of previously entered form field information for an entire form or for specific form fields.
Popular web browsers that include some or all of the autofill functionality described above include Firefox™ web browser (a trademark of Mozilla.org), Internet Explorer™ web browser (a trademark of Microsoft Corp.), Chrome™ web browser (a trademark of Google, Inc.), and Safari™ web browser (a trademark of Apple, Inc.).
It is also known to automatically determine the location of a computing device. This capability is used by various smart phone applications to determine the location of the phone so as to provide certain relevant information. For example, Google Maps uses geolocation information to display a smart phone's location on a map and to provide travel directions or indicate nearby businesses. In practice, generally, a smart phone application will request the phone to provide environmental information such as in-range wireless access point (wi-fi) signal strengths, in-range cell tower signal strengths, in-range cell tower signal arrival timing information, and GPS coordinates. This information is transmitted by the application to a geolocation service provider, such as Google Location Services, and the geolocation service provider returns a geographic location to the requesting program. If the quality and quantity of information sent to the geolocation service provider is high, the smart phone's location can be determined by the service provider to within a few meters.
The location of a computing device can also be determined from the device Internet Protocol (IP) address. Similar to the geolocation method described above, the device IP address is transmitted to an IP geolocation service provider, which returns a physical address. However, physical location based on IP address may not always be accurate. For example, many home internet service providers assign IP addresses dynamically to devices requesting access using Dynamic Host Protocol Configuration (DHCP). A device may keep the same assigned IP address for an extended period of time, but the assignment is not permanent and the device may not have the same IP address session to session. In these situations, the geolocation service provider may return the address of an internet service provider data center near the home user rather than the home user's physical location.